<?php

class CacheControler
{
    /**
     * 
     */
    static function cacheSet($data = array(), $cacheName = '', $path = PATH_WRITE_TMP)
    {
        // PATHは「/」で終わっている必要がある
        if (is_string($path)&&$path[strlen($path)-1]!='/') {
            $path = $path . '/';
        } else if (!is_string($path)) {
            return FALSE;
        }
        
        //ファイルパス
        $file = sprintf('%s%s.cache.php', $path, $cacheName);
        CU::cmkdir($file);
        
        $fp = fopen($file, 'w');
        fwrite($fp, sprintf('<?php $cacheData = %s; ?>', var_export($data, TRUE)));
        fclose($fp);
        
        // 成否確認
        if (isset($file)) {
            return TRUE;
        }
        
        // エラー
        return FALSE;
    }
    
    /**
     * 
     */
    static function cacheGet($cacheName = '', $path = PATH_WRITE_TMP)
    {
        // PATHは「/」で終わっている必要がある
        if (is_string($path)&&$path[strlen($path)-1]!='/') {
            $path = $path . '/';
        } else if (!is_string($path)) {
            return FALSE;
        }
        
        //ファイルパス
        $file = sprintf('%s%s.cache.php', $path, $cacheName);
        CU::cmkdir($file);
        
        // ファイルチェック
        if (is_file($file)) {
            // キャッシュファイル読み込み
            require $file;
            // 読み込んだキャッシュデータが存在するか確認
            if (isset($cacheData)) {
                // キャッシュデータを返す
                return $cacheData;
            }
        }
        
        // エラー
        return FALSE;
    }
    
    /**
     * 
     */
    static function cacheClear($cacheName = '', $path = PATH_WRITE_TMP)
    {
        
        
        return FALSE;
    }
    
    /**
     * 
     */
    static function cacheGC($cacheName = '', $path = PATH_WRITE_TMP)
    {
        
        
        return FALSE;
    }
}



/**
 * キャッシュコントローラー ショートコール クラス
 */
class CC extends CacheControler
{
}
?>